#pragma once
#ifndef MOLSYS_H_
#define MOLSYS_H_
#include "atom.h"
#include <string>
/* molecular system */
class MolSys
{
public:
    MolSys() {}
    ~MolSys() {}

    // compute temperature
    double ComputeTemperature();

    // compute kinetic energy
    double ComputeKineticEnergy();

    // read molecular system from file
    void ReadMolSys(const std::string &filename);

    // write molecular system to file
    void WriteMolSys(const std::string &filename, const int count);

    void SetAtomsInCubicBox(const std::string& atom_name, const int natoms, const double &box_length);

    void RemoveCenterVeloc();

    std::string name_;
    std::vector<Atom> atoms_;
    int natoms_;

    double potential_energy_;
    double kinetic_energy_;
    double total_energy_;
    double temperature_;
};
#endif